package com.jsftoolkit.utils;

import java.io.IOException;

/**
 * Interface for managed beans that process class path resources before serving
 * them. e.g. you might look for occurrences of variables and replace them with
 * their values.
 * 
 * @author noah
 * 
 */
public interface ResourceFilter {

	/**
	 * Key for the parameter that specifies the classpath resource to load.
	 */
	String RESOURCE_KEY = "resource";

	/**
	 * Key for the parameter that specifies the encoding of the resource.
	 */
	String CHARSET_KEY = "encoding";

	/**
	 * Key for the parameter that specifies the type of the resource. e.g.
	 * 'text/css'
	 */
	String CONTENT_TYPE_KEY = "contentType";

	/**
	 * Checks the response for {@link #RESOURCE_KEY}, {@link #CHARSET_KEY} and
	 * {@link #CONTENT_TYPE_KEY} and then writes the resource out, possibly
	 * filtering somehow.
	 * 
	 * @throws IOException
	 */
	void writeFilteredResource() throws IOException;

}